﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>收尾 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 收尾 statement ensures that one or more statements are always executed after a Try statement finishes." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>收尾</h1>

<p>确保在 <a href="Try.htm">Try</a> 语句完成之后总是执行一条或多条语句.</p>

<pre class="Syntax"><span class="func">收尾</span> <i>Statement</i></pre>
<pre class="Syntax" style="line-height: 100%"><span class="func">收尾</span>
{
    <i>语句</i>
}</pre>
<h2 id="Remarks">备注</h2>
<p>每次使用 <em>收尾</em> 都必须附属于(与之关联) 它上面的 <a href="Try.htm">try</a>(或 <a href="Catch.htm">捕获</a>) 语句. <em>收尾</em> 总是附属于它上面且离它最近的无主 <em>try</em> 语句, 不过可以使用<a href="Block.htm">区块</a>改变这种行为.</p>
<p><em>Try</em> 语句的行为取决于 <em>捕获</em> 或 <em>收尾</em> 是否存在. 有关详情, 请参阅 <a href="Try.htm">Try</a>.</p>
<p>不能使用 <em>跳转</em>, <em>跳出</em>, <em>跳过</em> 和 <em>返回</em> 退出 <em>收尾</em> 区块, 因为这需要在 <em>try</em> 区块里禁止任何控制流指令. 例如, 如果 <em>try</em> 语句中使用 <code>返回 42</code>, 值 42 将会在 收尾 区块执行后被返回. 如果使用上述语句之一来试图跳出 <em>收尾</em> 区块, 将会在加载时或运行时被检测为错误.</p>
<p>可以在 <em>收尾</em> 语句中使用 <a href="Block.htm#otb">One True Brace(OTB) 样式</a>. 例如:</p>
<pre>try {
    ...
} 收尾 {
    ...
}

try {
    ...
} 捕获 e {
    ...
} 收尾 {
    ...
}</pre>
<h2 id="Related">相关</h2>
<p><a href="Try.htm">Try</a>, <a href="Catch.htm">捕获</a>, <a href="Throw.htm">报错</a>, <a href="Block.htm">区块</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>try 
{
    工具提示 "Working..."
    Example1()
}
捕获 e
{
    <em>; 关于 e 对象的更多细节, 请参阅 <a href="Catch.htm">捕获</a>.</em>
    信息框(&quot;异常 thrown!`n`nwhat: &quot; e.what &quot;`nfile: &quot; e.file
        . &quot;`nline: &quot; e.line &quot;`nmessage: &quot; e.message &quot;`nextra: &quot; e.extra,, 16)
}
收尾
{
    工具提示 <em>; 隐藏工具提示</em>
}

信息框 "Done!"

<em>; 此函数包含了清理代码的 收尾 区块</em>
Example1()
{
    try
        Example2()
    收尾
        信息框 "This is always executed regardless of exceptions"
}

<em>; 当系统分钟数为奇数时此函数执行会报错</em>
Example2()
{
    如果 余数(内_分, 2)
        报错 异常(&quot;Test 异常&quot;)
    信息框 "Example2 did not fail"
}</pre>
</div>

</body>
</html>